草庐IT

2D 地图绘制

全部标签

java - Path2D 上的鼠标指针检测

我构建了一个Path2D表示由直线组成的未闭合形状:我希望能够检测到何时单击了鼠标并且鼠标指针靠近路径(在几个像素内)。使用contains方法不起作用,因为该算法将未闭合的形状视为隐式闭合(即通过在起点和终点之间画一条直线)。有人知道实现此目的的另一种机制吗? 最佳答案 创建一个BasicStroke(宽度控制您的像素距离公差)不要用它绘制,只使用它的createStrokedShape方法从您的形状创建第二个形状。第二个形状描述了如果您使用BasicStroke绘制第一个形状时将填充的形状的轮廓。使用第二个形状的contains

java - 有效地绘制大量粒子

我写了一个粒子系统小程序;目前我正在创建并分别绘制每个粒子。(这里是代码)BufferedImagebackbuffer;Graphics2Dg2d;publicvoidinit(){backbuffer=newBufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);g2d=backbuffer.createGraphics();setSize(WIDTH,HEIGHT);//createstheparticlesfor(inti=0;i它的性能还不错,我可以用20,000个粒子获得大约40FPS(尽管我有一台不错的笔记本电脑)。但

java - 在 libgdx 中绘制旋转的 BitmapFont

我似乎不知道如何正确旋转位图字体。我想你修改了SpriteBatch的转换矩阵。但是,尝试旋转围绕某个点旋转文本,但我不知道如何相对于文本本身旋转它。 最佳答案 您可以在sprite中创建字形。这样,您就可以将文本作为sprite进行操作。示例代码:请注意,这将返回单个字形的Sprite。(例如,char'A'被转换为sprite。)/**Createsaspritefromaglyph.**@paramch*@returnSprite*/publicSpritegetGlyphSprite(charch){Glyphglyph=G

java - 如何在 Java 中绘制平滑的缓冲图像?

我们正在用Java制作一个简单的2D游戏。每次我们绘制图像时,它们都是锯齿状的,看起来很糟糕。我们可以对文本进行抗锯齿处理,但是我们的图像是非vector格式的,所以我们不能对它们应用抗锯齿处理。我们想要平滑我们的.JPG图像(它们是在Photoshop中以最高质量创建的):有没有办法以编程方式实现这一点?BufferedImagegoplaybut=ImageIO.read(getClass().getResourceAsStream("/gameover/goplaybut.jpg"));g.drawImage();Graphics2Dg2d=(Graphics2D)g;g2d.s

java - 将使用 AWT 和 Swing 绘制电影的 Java 应用程序移植到服务器端

我正在处理一些使用AWT和Swing功能将动画输出写入桌面的代码。它使用2D图形绘制并以字体呈现文本。此代码可以使用JavaMediaFramework将动画保存到电影文件中。我想将此代码移植到纯服务器端环境,以便使用WebUI。绘图代码可以在servlet容器内运行,也可以作为命令行程序在外部运行。(或者我可以选择不使用servlet容器,而是使用更新的方式从命令行运行JavaWeb服务器。)我可以在不启动服务器上的X窗口系统的情况下使用AWT和Swing绘图功能吗? 最佳答案 文章UsingHeadlessModeintheJa

java - 如何使用 Streams 将 2D int 数组转换为 2D String 数组?

我正在尝试使用以下代码将2Dint数组转换为2DString数组:Arrays.stream(intArray).map(a->Arrays.stream(a).map(i->Integer.toString(i)).toArray()).toArray(String[][]::new);但是我在执行Integer.toString(i)时遇到编译时错误cannotconvertfromStringtoint。我认为这可能是因为我正在收集String数组中的int数组的流式传输结果,但map没有创建新的集合? 最佳答案 Arrays

java - 反转 Java Graphics2D 缩放和旋转坐标

我在Java中使用Graphics2D来缩放和旋转我绘制的图片。我现在想知道当我点击图片中的某个点时原始坐标是什么。因此,鉴于旋转和缩放的坐标,我想计算原始坐标。有没有简单的方法可以做到这一点? 最佳答案 如果在绘制图像时保留一份AffineTransform的副本,则可以使用AffineTransform.inverseTransform(Point2DptSrc,Point2DptDst)将设备空间坐标转换回用户空间编辑:如果您在绘画时捕获了Graphics2D的当前转换,请注意Graphics2D被多个轻量级子项重复使用同一个

java - 将文本与 Java Graphics 2d 对齐

谁能告诉我如何在Java2d中正确放置文本?这是代码,它绘制了一列自然左对齐的文本。FontyFont=newFont("Arial",Font.BOLD,13);interval=0;g2d.setFont(yFont);for(Stringl:binLabels){g2d.drawString(l,0,(135+interval));interval=interval+15;}快把我逼疯了。谢谢大家懒惰型 最佳答案 在您的paintComponent()方法中,您可以使用FontMetrics来获取要绘制的字符串的宽度:Font

java - jbox2d教程

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。你能告诉我:在哪里可以找到教程“在jbox2d中编程游戏”?

java - 如何在 2D 中的 2 点之间创建一条曲线并返回使该曲线每隔 d 距离的点?

我数学不好我有2个点,A(x1,y1)和B(x2,y2)二维。我需要创建一条从点A到B的虚拟路径,以R(半径)弯曲,然后返回一个描述这条弯曲路径的点数组,并非所有可能彼此之间的每个D(距离)。在Java中我需要这样的方法:privateArrayListgenerateCurve(PointFpFrom,PointFpTo,floatpRadius,floatpMinDistance){ArrayListpOutPut=newArrayList();//...generateresulttopOutPutreturnpOutPut;}如何做到这一点? 最佳答